The present invention relates to compensation of deleterious frequency characteristics, and more particularly to a high speed x/sine(x) correction circuit for a digital analog converter.
Waveform generators that include a digital to analog converter (DAC) input a discrete sequence of digital sample values to the DAC which in turn outputs corresponding analog values. The analog value corresponding to a single input digital value is maintained for the interval between input sample values. This causes the DAC to exhibit an inherent, undesirable, sine(x)/x frequency response.
This effect is demonstrated mathematically by assuming that the desired function a(t) is to be passed through the DAC in discrete form by the DAC""s output assuming the instantaneous value of A(t) every T seconds and holding that value over the interval. Using the notation used by Dr. Ron Bracewell in his book, xe2x80x9cThe Fourier Transform and Its Applicationsxe2x80x9d (McGraw-Hill, Inc. (c) 1965), the DAC""s output as a function of time is:
v(t)=a(t)xc2x7↑↑↑(t/T)*Π(t/T)
where ↑↑↑(t/T) is a sequence of impulse functions with a period of T seconds and Π(t/T) is a unit amplitude pulse T seconds wide.
The Fourier transform of this function is:
V(f)=A(f)*↑↑↑(Tf)xc2x7T[sine(xcfx80Tf)/(xcfx80Tf)]
where T is the period of the DAC""s clock. It may be replaced in this equation by a clock frequency Fc:
xe2x80x83V(f)=A(f)*↑↑↑(f/Fc)xc2x7T[sine(xcfx80f/Fc)/(xcfx80f/Fc)]
The convolution of a function [A(f)] with an impulse [↑↑↑(f/Fc)] is that function offset to the position of the impulse. Thus the DAC""s output spectrum is the spectrum of the input signal repeated at intervals throughout the spectrum, each centered at a harmonic of the DAC""s clock frequency. That complex spectrum is then shaped by the undesired sine(x)/x function where x=xcfx80f/Fc.
In typical applications the sine(x)/x frequency characteristic of the DAC is compensated by modifying the discrete data before it is applied to the DAC. This may take the form of a fixed coefficient pre-filter with an x/sine(x) frequency response. Since the x/sine(x) function approaches infinity for integer values of x, this function operates over only part of the DAC""s output frequency range.
U.S. Pat. No. 5,208,569 teaches solving this problem by modifying the characteristics of a filter already present in the pre-DAC path to accomplish another filtering function. The characteristics of that filter are modified to be the desired function timesxe2x80x94on a frequency by frequency basisxe2x80x94the x/sine(x) response. This approach reprograms pre-existing filtering to accomplish this process.
U.S. Pat. No. 6,317,167 teaches a solution to this problem for a specialized case where it is desired to use the output signal spectrum present at frequencies near the harmonics of the DAC""s clock frequency as well as the spectrum from zero to one-half the clock frequency. This system makes use of a very complex filter, using complexxe2x80x94in the mathematical sensexe2x80x94arithmetic to accomplish an x/sine(x) correction over a limited frequency range at a number of frequency bands. The bands may be centered from near zero to a high harmonic of the clock frequency. This system is very complicated and as such is limited in how fast it can be made to operate with a given circuit technology.
What is desired is a simple x/sin(x) correction circuit constructed from simple digital circuit functions that operates near or at the limit in speed of any given technology used to implement it.
Accordingly the present invention provides a high speed x/sine(x) correction circuit that creates a filter having an impulse response that approximates a sine(x)/x response. For each data value (each of which is considered an xe2x80x9cimpulsexe2x80x9d) of an input signal a scaled value of that impulse is generated and added in the following clock intervals prior to applying the input signal to a digital to analog converter (DAC) for conversion to an analog waveform. The scaled value may be thought of as a reflection pulse. A first reflection pulse may be generated by delaying the initial pulse one clock cycle, inverting the delayed initial pulse and multiplying the inverted initial pulse by a constant less than one. Preferably the value of the constant is 0.125 (xe2x85x9), which is obtained by right shifting the data three bits. A second reflection pulse may be derived in the same manner from the first reflection pulse after an additional clock cycle delay to provide optimum results. The reflection pulse(s) are added to the input signal in the clock cycle they are generated before input to the DAC.
The objects, advantages and other novel features of the present invention are apparent from the following detailed description when read in conjunction with the appended claims and attached drawing.